#define _CRT_SECURE_NO_WARNINGS 
//#include<iostream>
//using ll = long long;
//using namespace std;
//int main()
//{
//	ll n = 0;
//	cin >> n;
//	ll cnt = 0;
//	while (n)
//	{
//		if (n & 1)
//		{
//			cnt++;
//		}
//		n >>= 1;
//	}
//	cout << cnt << endl;
//	return 0;
//}
//#include<iostream>
//#include<stack>
//using ll = long long;
//using namespace std;
//int main()
//{
//	string str;
//	while (cin >> str)
//	{
//		stack<char>sk;
//		bool isBeautiful = true;
//		for (ll i = 0; i < str.size(); i++)
//		{
//			if (str[i] == '(')
//			{
//				sk.push('(');
//			}
//			else if (str[i] == ')')
//			{
//				if (sk.empty())
//				{
//					isBeautiful = false;
//					break;
//				}
//				else
//				{
//					sk.pop();
//				}
//			}
//		}
//		if (sk.empty() && isBeautiful)
//		{
//			cout << "YES" << endl;
//		}
//		else
//		{
//			cout << "NO" << endl;
//		}
//	}
//	return 0;
//}
//#include <bits/stdc++.h>
//using namespace std;
//using ll = long long;
//const ll MOD = 1e6 + 7;
//ll a[105], dp[105][105];
//int main()
//{
//    ll n, m;
//    cin >> n >> m;
//    for (ll i = 1; i <= n; i++)
//    {
//        cin >> a[i];
//    }
//    dp[0][0] = 1;
//    for (ll i = 1; i <= n; i++)
//    {
//        for (ll j = 0; j <= m; j++)
//        {
//            for (ll k = 0; k <= min(j, a[i]); k++)
//            {
//                dp[i][j] = (dp[i][j] + dp[i - 1][j - k]) % MOD;
//            }
//        }
//    }
//    cout << dp[n][m] << endl;
//    return 0;
//}
//#include <bits/stdc++.h>
//using namespace std;
//using ll = long long;
//const ll N = 1e5 + 10;
//const ll p = 998244353;
//ll a[N], dp[N][70];
//int main()
//{
//    ll n, x;
//    cin >> n >> x;
//    for (ll i = 1; i <= n; i++)
//    {
//        cin >> a[i];
//    }
//    dp[0][0] = 1;
//    for (ll i = 1; i <= n; i++)
//    {
//        for (ll j = 0; j < 64; j++)
//        {
//            dp[i][j] = (dp[i - 1][j] + dp[i - 1][j ^ a[i]]) % p;
//        }
//    }
//    cout << dp[n][x] << endl;
//    return 0;
//}
//#include <bits/stdc++.h>
//using namespace std;
//using ll = long long;
//const ll N = 100;
//int main()
//{
//    ll n = 0;
//    cin >> n;
//    ll An[n][n];
//    for (ll i = 0; i < n; i++)
//    {
//        for (ll j = 0; j < i + 1; j++)
//        {
//            cin >> An[i][j];
//        }
//    }
//    for (ll i = 0; i < n; i++)
//    {
//        for (ll j = 0; j < i + 1; j++)
//        {
//            if (i >= 1)
//            {
//                if (j == 0)
//                {
//                    An[i][j] += An[i - 1][j];
//                }
//                else if (j == i)
//                {
//                    An[i][j] += An[i - 1][j - 1];
//                }
//                else
//                {
//                    An[i][j] += max(An[i - 1][j], An[i - 1][j - 1]);
//                }
//            }
//        }
//    }
//    if (n & 1)
//    {
//        cout << An[n - 1][(n - 1) / 2] << endl;
//    }
//    else
//    {
//        cout << max(An[n - 1][(n - 1) / 2], An[n - 1][(n - 1) / 2 + 1]) << endl;
//    }
//    return 0;
//}
//#include <bits/stdc++.h>
//using namespace std;
//using ll = long long;
//const ll N = 1e3 + 10;
//ll a[N];
//ll dp[N];
//int main()
//{
//	ll n = 0;
//	cin >> n;
//	for (ll i = 1; i <= n; i++)
//	{
//		cin >> a[i];
//	}
//	for (ll i = 1; i <= n; i++)
//	{
//		dp[i] = 1;
//		for (ll j = 1; j < i; j++)
//		{
//			if (a[i] > a[j])
//			{
//				dp[i] = max(dp[i], dp[j] + 1);
//			}
//		}
//	}
//	ll ans = 0;
//	for (ll i = 1; i <= n; i++)
//	{
//		ans = max(dp[i], ans);
//	}
//	cout << ans << endl;
//	return 0;
//}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 150;
ll a[N];
ll dpl[N];
ll dpr[N];
int main()
{
	ll n = 0;
	cin >> n;
	for (ll i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	for (ll i = 1; i <= n; i++)
	{
		dpl[i] = 1;
		for (ll j = 1; j < i; j++)
		{
			if (a[i] > a[j])
			{
				dpl[i] = max(dpl[i], dpl[j] + 1);
			}
		}
	}
	for (ll i = n; i >= 1; i--)
	{
		dpr[i] = 1;
		for (ll j = i + 1; j <= n; j++)
		{
			if (a[i] > a[j])
			{
				dpr[i] = max(dpr[i], dpr[j] + 1);
			}
		}
	}
	ll ans = n;
	for (ll i = 1; i <= n; i++)
	{
		ans = min(ans, (n - dpl[i] - dpr[i] + 1));
	}
	cout << ans << endl;
	return 0;
}